#include<stdio.h>
const int maxn=100;
int a[maxn],sum=0,n;
int r[maxn],s[maxn]={0};
void dfs(int step)
{
	if(step==n+1){
		sum++;
		for(int i=1;i<=n;i++){
			printf("%d ",r[i]);
		}
		printf("\n");
	}
	for(int i=1;i<=n;i++){
		if(!s[i]){
			s[i]=1;
			r[step]=a[i]; 
			dfs(step+1);
			s[i]=0;
		}
	}
}
int main()
{
	scanf("%d",&n);
	for(int i=1;i<=n;i++)
		a[i]=i;
	dfs(1);
	printf("%d",sum);
	return 0;
}
